翻訳と辞書
Words near each other
・ Secundus of Abula
・ Secundus of Asti
・ Secundus of Non
・ Secundus of Ptolemais
・ Secundus the Silent
・ SECURA Insurance
・ Securax
・ Secure
・ Secure access module
・ Secure America and Orderly Immigration Act
・ Secure America Now
・ Secure attachment
・ Secure attention key
・ Secure Border Initiative
・ Secure by default
Secure by design
・ Secure channel
・ Secure coding
・ Secure communication
・ Secure Communication based on Quantum Cryptography
・ Secure Communications Interoperability Protocol
・ Secure Communities and administrative immigration policies
・ Secure computing
・ Secure Computing Corporation
・ Secure copy
・ Secure cryptoprocessor
・ Secure Data Aggregation in WSN
・ Secure Digital
・ Secure Digital Container
・ Secure Digital Music Initiative


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Secure by design : ウィキペディア英語版
Secure by design

Secure by design, in software engineering, means that the software has been designed from the ground up to be secure. Malicious practices are taken for granted and care is taken to minimize impact when a security vulnerability is discovered or on invalid user input.
Generally, designs that work well do not rely on being secret. It is not mandatory, but proper security usually means that everyone is allowed to know and understand the design ''because it is secure''. This has the advantage that many people are looking at the code, and this improves the odds that any flaws will be found sooner (Linus' law). Of course, attackers can also obtain the code, which makes it easier for them to find vulnerabilities as well.
Also, it is very important that everything works with the least amount of privileges possible (principle of least privilege). For example a Web server that runs as the administrative user (root or admin) can have the privilege to remove files and users that do not belong to itself. Thus, a flaw in that program could put the entire system at risk. On the other hand, a Web server that runs inside an isolated environment and only has the privileges for required network and filesystem functions, cannot compromise the system it runs on unless the security around it is in itself also flawed.
==Security by design in practice==
Many things, especially input, should be distrusted by a secure design. A fault-tolerant program could even distrust its own internals.
Two examples of insecure design are allowing buffer overflows and format string vulnerabilities. The following C program demonstrates these flaws:
#include

int main()


Because the gets function in the C standard library does not stop writing bytes into buffer until it reads a newline character or EOF, typing more than 99 characters at the prompt constitutes a buffer overflow. Allocating 100 characters for buffer with the assumption that almost any given name from a user is no longer than 99 characters doesn't prevent the user from actually ''typing'' more than 99 characters. This can lead to arbitrary machine code execution.
The second flaw is that the program tries to print its input by passing it directly to the printf function. This function prints out its first argument, replacing conversion specifications (such as "%s", "%d", et cetera) sequentially with other arguments from its call stack as needed. Thus, if a malicious user entered "%d" instead of his name, the program would attempt to print out a non-existent integer value, and undefined behavior would occur.
A related mistake in Web programming is for an online script not to validate its parameters. For example, consider a script that fetches an article by taking a filename, which is then read by the script and parsed. Such a script might use the following hypothetical URL to retrieve an article about dog food:
http://www.example.net/cgi-bin/article.sh?name=dogfood.html
If the script has no input checking, instead trusting that the filename is always valid, a malicious user could forge a URL to retrieve configuration files from the webserver:
http://www.example.net/cgi-bin/article.sh?name=../../../../../etc/passwd
Depending on the script, this may expose the /etc/passwd file, which on Unix-like systems contains (among others) user IDs, their login names, home directory paths and shells. (See SQL injection for a similar attack.)

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Secure by design」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.